/*
    文件中字符串搜索工具
    1:读取文件
    2:搜索文件中的字符串
    3:匹配需要搜索的字符串
    4:输出结果到文件
    cargo run -- the poem.txt
*/

// #[allow(unused_imports)]
use std::env;
use std::process;

// 加载模块

//引入lib.rs中的search_str
use search_str_demo::Config;  // 使用库导出的 Config
use search_str_demo::search_str;  // 使用库导出的函数


fn main() {
    //env::args 方法会读取并分析传入的命令行参数，最终通过 collect 方法输出一个集合类型 Vector
    let args: Vec<String> = env::args().collect();

    //使用 dbg! 宏来输出读取到的数组内容
    //dbg!(args);

    //使用模式匹配来获取参数
    let args_config: Config = Config::parse_params(&args).unwrap_or_else(|err| {
        println!("Problem parsing arguments: {err}");
        process::exit(1);
    });

    if let Err(e) = search_str(args_config) {
        println!("Application error: {e}");
        process::exit(1);
    }
}
